#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::paintEvent(QPaintEvent *event)
{
    // 因为画的图在构造完成之后是没有的，画完图之后进行界面切换等操作后，画的图要依然显示在窗口中
    // 所以在这个画图事件处理函数中编写

    (void)event;

    QPainter painter(this);//不是挂到对象树上，而是指定在那个控件上进行绘制

    // 设置线条样式
    QPen pen;
    pen.setColor(QColor(255,0,0));
    pen.setWidth(5);
    pen.setStyle(Qt::DashLine);
    painter.setPen(pen);

    // 画刷
    QBrush brush;
    brush.setColor(QColor(0,0,255));
    brush.setStyle(Qt::Dense6Pattern);
    painter.setBrush(brush);

    // 画一条线段
    painter.drawLine(20,50,200,50);
    painter.drawLine(QPoint(20,100),QPoint(200,100));
    // 画一个矩形
    painter.drawRect(20,150,180,50);
    // 画一个圆(外接矩形的右上角)
    painter.drawEllipse(50,250,100,100);
    // 画文字(x最左端、y基线)
    QFont font("微软雅黑",10);
    painter.setFont(font);
    painter.drawText(85,305,"hello");

    // 画一个图片
    QPixmap pixmap(":/mn.jpg");
    painter.rotate(180);// 旋转180度
    painter.translate(-800, -600);// 旋转是以(0,0)点为原点旋转的，旋转到屏幕外面去了，所以需要切换原点
    painter.drawPixmap(300, 0, 400, 400, pixmap);


}

